package xyz.zcq.zcqrpc.loadbalancer;

import xyz.zcq.zcqrpc.model.ServiceMetaInfo;

import java.util.List;
import java.util.Map;

/**
 * 负载均衡接口（消费端调用）
 */
public interface LoadBalancer {

    /**
     * 根据请求参数、服务元信息列表返回选择的服务元信息
     *
     * @param requestParam        请求参数
     * @param serviceMetaInfoList 服务元信息列表
     * @return 选择的服务元信息
     */
    ServiceMetaInfo select(Map<String, Object> requestParam, List<ServiceMetaInfo> serviceMetaInfoList);

}
